package adverts_api

import (
	"gin_study_blog/common/http"
	"gin_study_blog/models"
	"gin_study_blog/service/helper"
	"github.com/gin-gonic/gin"
	"strings"
)

// AdvertsListView 广告列表
// @Tags 广告管理
// @Summary 广告列表
// @Description 广告列表
// @Param data query models.PageInfo false "查询参数"
// @Router /api/adverts [get]
// @Produce json
// @Success 200 {object} http.Response{data=http.ListResponse[models.AdvertModel]}
func (AdvertsApi) AdvertsListView(c *gin.Context) {
	var li models.PageInfo
	if err := c.ShouldBindQuery(&li); err != nil {
		http.FailWithCode(http.ParamsError, c)
		return
	}

	referer := c.GetHeader("Referer")
	// gorm 有一个特性, 如果条件IsShow = false mysql就会忽略 is_show 的查询
	isShow := true
	// 如果存在 admin 就返回全部 strings.Contains 判断是否存在某个值
	if strings.Contains(referer, "admin") {
		isShow = false
	}
	// 判断请求头的 Referer 如果包含了 admin,就返回全部, 否则就返回 is_show = true
	list, count, _ := helper.CommonList(models.AdvertModel{IsShow: isShow}, helper.Option{
		PageInfo: li,
		Debug:    true,
	})

	http.IsOkWithList(list, count, c)
}
